﻿using System;

namespace Smart.Model
{
	public interface ILateUpdateSystem : ISystem
	{

	}

    public interface ILateUpdate
    {
        void Run(object o);
    }

    public abstract class LateUpdateSystem<T> : ILateUpdate, ILateUpdateSystem
    {
		public void Run(object o)
		{
			this.LateUpdate((T)o);
		}

		public Type Type()
		{
			return typeof(T);
		}

		public abstract void LateUpdate(T self);
	}
}
